پروژه ساعت دیجیتال با میکرو کنترلر Atmega8
نوشته شده توسط : مجید

بسم اللّه الرّحمن الرّحیم

 

 

پروژه ساعت  دیجیتال  با میکرو کنترلر  Atmega8

 

 


 

 

 

پروژه ساعت دیجیتال با میکرو کنترلر Atmega8

 

 

این پروژه یکی از ساده ترین ساعت های دیجیتال با میکروکنترلر Atmega8L می باشد .در این پروژه از RTC  داخلی میکرو استفاده شده است و ولتاژ تغذیه آن 3 ولت است .درضمن این میکرو از نوع L   است یعنی این نوع میکرو با ولتاژ پایین کار می کند. ولی اگر میکرو از این نوع نباشد فقط کافیست ولتاژ تغذیه را به 5 ولت افزایش داد . برای نمایش اعداد این ساعت از دو سون سگمنت دوبل آند مشترک مولتی پلکس استفاده شده است که می توان به جای آن از یک سون سگمنت 4 تایی استفاده کرد. برای تنظیم این  ساعت دیجیتال از 2 میکرو سوئیچ استفاده شده است که یکی از آن ها برای تنظیم دقیقه و دیگری برای تنظیم ساعت است .این ساعت به دلیل استفاده از RTC داخلی میکرو بسیار دقیق است به طوری که هر 1000000 ساعت 0.1 ثانیه خطا دارد .جریان مصرفی RTC  داخلی از جریان مصرفی یک دیود  LEDکمتر است . ( اگر از باتری استفاده می کنید نیازی به خازن نیست )

(ولتاژ تغذیه 0 تا 9 ولت و 250 میلی آمپر)

 

قطعات :

1- میکروکنترلر Atmega8

2- سون سگمنت دوبل آند مشترک

3- کریستال ساعت

4- مقاومت 330 اهم

5- خازن 100nF (در صورت استفاده از ترانس به عنوان صافی)

6- منبع تغذیه 3 تا 5 ولت

7- میکرو سوئیچ ( 2 پایه یا 4 پایه )

 

نقشه شماتیک مدار با نرم افزار Proteus 7.6

 

 

 شماتیک ساعت

 کدهای مربوط به ساعت :

'---------------------------------------------------------------

'Simple Digital Clock With 7-Segment

'Programmer: Majid Alinia (Savis_20@Yahoo.COM) MajidAlinia.Blogfa.COM

'Compiler : BASCOM 2.02.8.0

'Creation Date: May 02, 2011 (1390.02.12)

'Copyright: (C) 2011 By WWW.MajiAlinia.Blogfa.COM

'License: This Is A Free Firmware, Ver: 1.00 (Comm. Anode)

'---------------------------------------------------------------

$regfile = "m8def.dat"

$crystal = 1000000                                          'Internal RC

$hwstack = 64

$swstack = 64

$framesize = 64

'RTC

Config Clock = Soft , Gosub = Sectic

Enable Interrupts

Time$ = "12:00:00"

'I/O

Config Portd = Output                                       'A-G (Data)

Config Portc = Output

Config Pinb.0 = Input

Config Pinb.1 = Input

Config Pinb.2 = Output

'Set Pullup Resistor For Setting Key's

Set Portb.0

Set Portb.1

'Aliases

Dataport Alias Portd

Comm Alias Portc

Hour_key Alias Pinb.0

Min_key Alias Pinb.1

Second_led Alias Portb.2

'Variables

Dim Temp As Byte

Dim Temp2 As Byte

Dim Scnd As Byte

Dim Rtc_run As Byte

Dim S As Bit

Dim Dp As Bit

'Declaration

Declare Sub Keyscan

Declare Sub Refresh

Declare Sub Send

Declare Sub Wait4key

Declare Sub Blink_sec

'Wait 4 RTC Start

'Comm. Anode

'Hour Key

'Minute Key

'Blink Sec

 

Comm = &H0F                                                 'Prompt

 

Do

If Rtc_run > 0 Then Exit Do

Loop

'Main Prog Start Here:

Do

Call Keyscan

Call Refresh

Call Blink_sec

Loop

End

Sub Keyscan

If Hour_key = 0 Then

Incr _hour

If _hour > 23 Then _hour = 0

Call Wait4key

End If

If Min_key = 0 Then

Incr _min

If _min > 59 Then _min = 0

Call Wait4key

End If

End Sub

Sub Refresh

   Comm = &B1000 : Dp = 0 : Temp = _hour \ 10 : Call Send

   Comm = &B0100 : Dp = 1 : Temp = _hour Mod 10 : Call Send

   Comm = &B0010 : Dp = 0 : Temp = _min \ 10 : Call Send

   Comm = &B0001 : Dp = 0 : Temp = _min Mod 10 : Call Send

End Sub

Sub Send

   Dataport = Lookup(temp , Segdata)

If Dp = 1 Then

Portd.7 = S

Else

Portd.7 = 1

End If

Waitms 4

   Dataport = &HFF

End Sub

Sub Wait4key

For Temp2 = 1 To 25

Call Refresh

Next

End Sub

Sub Blink_sec

Incr Scnd

If Scnd > 63 Then Scnd = 0

If Scnd > 0 And Scnd < 31 Then

      S = 1

Else

      S = 0

End If

End Sub

Segdata:

Data &B11000000 , &B11111001 , &B10100100 , &B10110000

Data &B10011001 , &B10010010 , &B10000010 , &B11111000

Data &B10000000 , &B10010000

Sectic:

Incr Rtc_run

Return

 

گرد آورنده :   مجید علی نیا

WWW.Majid Alinia.Blogfa.COM

WWW.ECA.Loxblog.COM

Savis_20@yahoo.com

 

 

 

 


تبلیغات پیامکی



:: برچسب‌ها: پروژه ساعت , ساعت دیجیتالی , پروژه ساعت دیجیتال با میکرو کنترلر , پروژه ساعت دیجیتال با میکرو کنترلر Atmega8 ,
:: بازدید از این مطلب : 16093
|
امتیاز مطلب : 39
|
تعداد امتیازدهندگان : 8
|
مجموع امتیاز : 8
تاریخ انتشار : شنبه 14 خرداد 1398 | نظرات ()
مطالب مرتبط با این پست
لیست
می توانید دیدگاه خود را بنویسید

/weblog/file/img/m.jpg
علی در تاریخ : 1397/12/6/1 - - گفته است :
سلام سايت خوبي دارين. خوشحال ميشم به سايت من سر بزنيد و نظر بدين و ايده اي در مورد بهتر شدن سايتم بدهيد
فروشگاه رابو کالا http://www.rabokala.ir

/weblog/file/img/m.jpg
نوید در تاریخ : 1391/12/2/3 - - گفته است :
من درست کردم ولی اصلا روشن نشد

/weblog/file/img/m.jpg
بهمن در تاریخ : 1390/12/28/0 - - گفته است :
من يه ساعت ميخوام كه با اتمگاه 8 باشه و دما رو هم نمايش بده.

09198510360

/commenting/avatars/avatar13.jpg
حسام در تاریخ : 1390/7/21/4 - - گفته است :
خيلي عاليه ب وبلاگه من هم سر بزن
Www.led.loxblog.com
نظر سادت نره

/weblog/file/img/m.jpg
farshid در تاریخ : 1390/3/14/6 - - گفته است :
سلام به ما هم سر بزن اگه خواستی ما رو بلینک

/commenting/avatars/avatar05.jpg
رضا در تاریخ : 1390/3/14/6 - - گفته است :
من این ساعت رو ساختم
خیلی ازتون ممنونم


نام
آدرس ایمیل
وب سایت/بلاگ
:) :( ;) :D
;)) :X :? :P
:* =(( :O };-
:B /:) =DD :S
-) :-(( :-| :-))
نظر خصوصی

 کد را وارد نمایید:

آپلود عکس دلخواه: